LDPC code inspection matrix generation method

ABSTRACT

A method of generating check matrixes for LDPC codes includes analyzing a “Sum-Product Algorithm” for Low-Density Parity-Check codes, on the assumption that a Log Likelihood Ratio between input/output data at a decoder can be approximated in a Gaussian distribution; fixing a coding rate; obtaining an optimal ensemble, which is an ensemble that minimizes the threshold of SNR, of row and column weights in one linear programming to maximize a Gaussian noise; and generating a check matrix for LDPC codes in accordance with the ensemble obtained.

TECHNICAL FIELD

The present invention relates to a method of generating check matrixesfor Low-Density Parity-Check (hereinafter, “LDPC”) codes that areapplied in an encoder as error correction codes.

BACKGROUND ART

FIG. 13 illustrates an LDPC encoding/decoding system. Reference numeral101 denotes an encoder, 102 denotes a modulator, 103 denotes a channel,104 denotes a demodulator, and 105 denotes a decoder. Prior toexplanation of a conventional method of generating check matrixes forLDPC codes, encoding and decoding using LDPC codes are explained first.

At the sending side, the encoder 101 generates a check matrix H using acertain method. Then, a generator matrix G is derived from the followingcondition.

G: k×n matrix (where k is information-length and n is code-word length)

GHT=0 (where T is transposition)

The encoder 101 then receives a message (m1 m2 . . . mk) of aninformation-length k, and generates a code-word C using the generatormatrix G as follows:

$\quad\begin{matrix}{C = {\left( {{m1}\mspace{14mu}{m2}\mspace{14mu}\ldots\mspace{14mu}{mk}} \right)\mspace{14mu} G}} \\{= {\left( {{c1}\mspace{14mu}{c2}\mspace{14mu}\ldots\mspace{14mu}{cn}} \right)\mspace{14mu}{\left( {{{where}\mspace{14mu}{H\left( {{c1}\mspace{14mu}{c2}\mspace{14mu}\ldots\mspace{14mu}{cn}} \right)}T} = 0} \right).}}}\end{matrix}$

The modulator 102 subjects the generated code-word C to digitalmodulation such as BPSK, QPSK or multi-valued QAM and transmits theresultant modulated signal.

At the receiving side, the demodulator 104 receives the modulated signalvia the channel 103, and subjects it to a digital demodulation such asBPSK, QPSK or multi-valued QAM. The decoder 105 then subjects theLDPC-coded, demodulated result to an iterative decoding by “Sum-ProductAlgorithm” and provides an estimated result (corresponding to theoriginal m1 m2 . . . mk).

Conventionally, check matrixes for the LDPC codes are generated asexplained below. The check matrix proposed by Gallager, the proposer ofthe LDPC, is shown in FIG. 14, as an example.

This matrix is a binary matrix of “1” and “0”. Parts of “1” are hatchedand parts of “0” are white. There are four “1”s in one row (hereinafter,“row weight”), and there are three “1”s in one column (hereinafter,“column weight”). All columns and rows have respective uniform weights.Thus, it is generally called “Regular-LDPC Code”. In the Gallager'scodes, as shown in FIG. 14, the matrix is divided into three blocks, forexample, and the second and third blocks are subjected to randompermutation.

Because the random permutation has no certain rule, it is required toexecute a time-consuming search by computer to find codes with a bettercharacteristic.

Euclid geometric codes are such LDPC codes that exhibit a relativelystable and nice characteristic and can definitely generate a matrixwithout the use of the computer search. Y. Kou et al. (Y. Kou, S. Lin,and M. P. C. Fossorier, “Low Density Parity Check Codes Based on FiniteGeometries: A Rediscovery,” ISIT 2000, pp. 200, Sorrento, Italy, Jun. 25to 30, 2000.) have proposed a method using such Euclid geometric codes.This method explains “Regular-LDPC Codes” consisting of regularensembles.

A method of generating a check matrix for LDPC codes is herein proposedusing Euclid geometric codes EG(2, 26) or a kind of finite geometriccodes. This method achieves a characteristic that is located closely but1.45 decibels away from the Shannon limit at an error rate of 10-4. FIG.15 illustrates a configuration of Euclid geometric codes EG(2, 22),which has a structure of “Regular-LDPC Codes” with row and columnweights of 4, 4.

Euclid geometric codes EG(m, 2s) have a characteristic defined asfollows:

Code length: n = 22s − 1 Redundant bit length: n − k = 3s − 1Information length: k = 22s − 3s Minimum distance: dmin = 2s + 1Density: r = 2s/(22s − 1).

As can be seen from FIG. 15, Euclid geometric codes have a structurewith a cyclically sifted location of “1” in each row from an adjacentrow. This structure can characteristically configure codes easily anddefinitely.

The check matrix generating method by Y. Kou et al. further includeschanging row and column weights based on the Euclid geometric codes toextend rows and columns, if required. For example, when a column weightin EG(2, 22) is separated into halves, in the paper by Y. Kou et al.,every other one of four weights located in one column is separated intotwo groups. FIG. 16 illustrates an exemplary regular separation of thecolumn weight from 4 into 2.

On the other hand, Ludy et al. (M. G. Luby, M. Mitzenmacher, M. A.Shokrollahi, and D. A. Spielman, “Improved Low-Density Parity-CheckCodes Using Irregular Graphs and Belief Propagation,” Proceedings of1998 IEEE International Symposium on Information Theory, pp. 171,Cambridge, Mass., Aug. 16 to 21, 1998.) have reported that“Irregular-LDPC Codes” have a better characteristic than that of“Regular-LDPC Codes”. The “Irregular-LDPC Codes” represent such LDPCcodes that have non-uniformity in either or both of row and columnweights.

Richardson et al. (T. J. Richardson and R. Urbanke, “The capacity oflow-density parity-check codes under message-passing decoding,” IEEETrans. Inform. Theory, vol. 47, No. 2, pp. 599 to 618, February 2001.)have analyzed it theoretically as well as Chung et al. (S.-Y. Chung, T.J. Richardson, and R. Urbanke, “Analysis of Sum-Product Decoding ofLow-Density Parity-Check Codes Using a Gaussian Approximation,” IEEETrans. Inform. Theory, vol. 47, No. 2, pp. 657 to 670, February 2001.)

In particular, Chung et al. analyze a “Sum-Product Algorithm” for LDPCcodes, on the assumption that a Log Likelihood Ratio (hereinafter,“LLR”) between an input and an output at an iterative decoder can beapproximated in a Gaussian distribution, to derive a nice ensemble ofrow and column weights.

In the conventional method of generating check matrixes for LDPC codesby Chung et al., however, the number of “1” points in a row(corresponding to a degree distribution of variable nodes laterdescribed) and the number of “1” points in a column (corresponding to adegree distribution of check nodes later described) are both employed asvariables to derive the degree distribution of variable nodes and thedegree distribution of check nodes that can maximize the followingequation (1) (rate: coding rate). In a word, a linear programming isemployed to search an ensemble that minimizes a Signal to Noise Ratio(hereinafter, “SNR”).

$\begin{matrix}{{rate} = {1 - \frac{\int_{0}^{1}{\rho(x)}}{\int_{0}^{1}{\lambda(x)}}}} & (1)\end{matrix}$

Therefore, a problem arises because a check matrix derived from themaximum of the “rate” has a flux and unstable characteristic. Inaddition, the conventional method of generating check matrixes for LDPCcodes iteratively executes the derivation of the degree distribution ofvariable nodes and the derivation of the degree distribution of checknodes over certain times. Therefore, a problem arises because it takestime to some extent for searching.

It is an object of the present invention to solve at least the problemsin the conventional technology.

DISCLOSURE OF THE INVENTION

The method according to the present invention is a method of generatingcheck matrixes for LDPC codes to derive a threshold of SNR that makes anerror 0 by analyzing a “Sum-Product Algorithm” for Low-DensityParity-Check codes, on the assumption that a Log Likelihood Ratiobetween input/output data at a decoder can be approximated in a Gaussiandistribution. The method includes fixing a coding rate; obtaining anoptimal ensemble, which is an ensemble that minimizes the threshold ofSNR, of row and column weights in one linear programming to maximize aGaussian noise; and generating a check matrix for LDPC codes inaccordance with the ensemble obtained.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flowchart of a method according to a first embodiment forgenerating check matrixes for LDPC codes;

FIG. 2 illustrates an ensemble of a generator function λ(x) and agenerator function ρ(x) when the rate is 0.5;

FIG. 3 illustrates a division table for EG(2, 25) when dl is assumed tobe 32;

FIG. 4 illustrates a table for adjusting a weight distribution;

FIG. 5 illustrates an ensemble of a generator function λ(x) and agenerator function ρ(x) after the weight distribution;

FIG. 6 illustrates the conventional dividing procedure;

FIG. 7 is a graph of EG(2, 25) before division;

FIG. 8 is a graph of EG(2, 25) after the division;

FIG. 9 illustrates a relation between Eb/No and bit error rate;

FIG. 10 illustrates an ensemble of “Regular-LDPC Codes”;

FIG. 11 illustrates an ensemble of “Irregular-LDPC Codes”;

FIG. 12 illustrates a Latin square of random sequences;

FIG. 13 illustrates an LDPC encoding/decoding system;

FIG. 14 illustrates the conventional check matrix for LDPC codes;

FIG. 15 illustrates a configuration of Euclid geometric codes EG(2, 22);

FIG. 16 illustrates an exemplary row weight regularly separated from 4into 2;

FIG. 17 illustrates a Latin square of random sequences; and

FIG. 18 illustrates a Latin square of random sequences.

The other objects, features and advantages of the present invention arespecifically set forth in or will become apparent from the followingdetailed descriptions of the invention when read in conjunction with theaccompanying drawings.

BEST MODE FOR CARRYING OUT THE INVENTION

Exemplary embodiments of methods of generating check matrixes for LDPCcodes according to the present invention will be explained below withreference to the accompanying drawings. It should be noted that theembodiments are not intended to limit the invention.

Prior to explanation of the method of generating check matrixes for LDPCcodes according to the present embodiment, the position of an encodercapable of achieving the method is explained first together with theconventional method of generating check matrixes for “Irregular-LDPCCodes”. The LDPC encoding/decoding system has the same configuration asthat previously explained in FIG. 13.

At the sending side, the encoder 101 generates a check matrix H usingthe method of generating check matrixes for LDPC codes according to thepresent embodiment later described. Then, a generator matrix G isderived from the following condition.

G: k×n matrix (where k is information-length and n is code-word length)

GHT=0 (where T is transposition)

The encoder 101 then receives a message (m1 m2 . . . mk) of aninformation-length k, and generates a code-word C using the generatormatrix G.

$\quad\begin{matrix}{C = {\left( {{m1}\mspace{14mu}{m2}\mspace{14mu}\ldots\mspace{14mu}{mk}} \right)\mspace{14mu} G}} \\{= {\left( {{c1}\mspace{14mu}{c2}\mspace{14mu}\ldots\mspace{14mu}{cn}} \right)\mspace{14mu}\left( {{{where}\mspace{14mu}{H\left( {{c1}\mspace{14mu}{c2}\mspace{14mu}\ldots\mspace{14mu}{cn}} \right)}T} = 0} \right)}}\end{matrix}$

The modulator 102 subjects the generated code-word C to digitalmodulation such as BPSK, QPSK or multi-valued QAM and transmits theresultant modulated signal.

At the receiving side, the demodulator 104 receives the modulated signalvia the channel 103, and subjects it to a digital demodulation such asBPSK, QPSK or multi-valued QAM. The decoder 105 then subjects theLDPC-coded, demodulated result to an iterative decoding by “Sum-ProductAlgorithm” and provides an estimated result (corresponding to theoriginal m1 m2 . . . mk).

Chung et al. (S. -Y. Chung, T. J. Richardson, and R. Urbanke, “Analysisof Sum-Product Decoding of Low-Density Parity-Check Codes Using aGaussian Approximation,” IEEE Trans. Inform. Theory, vol. 47, No. 2, pp.657 to 670, February 2001.) have theoretically analyzed the conventionalmethod of generating check matrixes for “Irregular-LDPC Codes” . Themethod is explained here in detail. In this method, a “Sum-ProductAlgorithm” for LDPC codes is analyzed, on the assumption that a LogLikelihood Ratio (LLR) between an input and an output at an iterativedecoder can be approximated in a Gaussian distribution, to derive a niceensemble of row and column weights.

The method of generating check matrixes for LDPC Codes described in thepaper, or Gaussian Approximation, has a premise that defines a point of“1” on a row as a variable node and a point of “1” on a column as acheck node in the check matrix.

LLR message propagation from a check node to a variable node is analyzedfirst. The following equation (2) is defined on condition that 0<s<∞ and0≦t<∞. In this case, s=mu0 denotes a mean of u0; u0 a Log LikelihoodRatio (LLR) associated with a signal received via a channel containing aGaussian noise of distributed value σn2; and t an ensemble average ofLLR output values at check nodes at the time of certain iteration.

$\quad\begin{matrix}{{{{{fj}\left( {s,t} \right)} = {\phi^{- 1}\left( {1 - \left\lbrack {1 - {\sum\limits_{i = 2}^{d_{i}}{\lambda_{i}{\phi\left( {s + {\left( {i - 1} \right)t}} \right)}}}} \right\rbrack^{j - 1}} \right)}}{{f\left( {s,t} \right)} = {\sum\limits_{j = 2}^{d_{r}}{\rho_{j}{f_{j}\left( {s,t} \right)}}}}}\;} & (2)\end{matrix}$

λ(x) and ρ(x) respectively denote generator functions of degreedistribution associated with variable nodes and check nodes, and can berepresented by the equations (3) and (4). (A degree is expressed as thenumber of “1”s in each row and each column of variable nodes and checknodes). In addition, λi and ρi respectively denote ratios of edgesbelonging to variable nodes and check nodes at a degree of i. Finally,dl denotes a degree of maximum variable nodes, and dr a degree ofmaximum check nodes.

$\begin{matrix}{{\lambda(x)} = {\sum\limits_{i = 2}^{d_{i}}{\lambda_{i}x^{i - 1}}}} & (3) \\{{\rho(x)} = {\sum\limits_{i = 2}^{d_{r}}{\rho_{i}x^{i - 1}}}} & (4)\end{matrix}$φ(x) is defined as the following equation (5):

$\begin{matrix}{{\phi(x)} = \left\{ \begin{matrix}{1 - {\frac{1}{\sqrt{4\pi\; x}}{\int_{R}{\tan\; h\;{\frac{u}{2} \cdot {\mathbb{e}}^{- \frac{{({u - x})}^{2}}{4x}}}{\mathbb{d}u}}}}} & {{{if}\mspace{14mu} x} > 0} \\1 & {{{if}\mspace{14mu} x} \leq 0}\end{matrix} \right.} & (5)\end{matrix}$The equation (2) can be represented equivalently by the followingequation (6):tl=f(s,tl−1)  (6)where tl denotes an ensemble average of LLR output values on check nodesat the time of the l-th iteration.

A condition required for deriving an SNR limit (threshold) that providesan error with a value of 0 includes t1(s)→∞ (expressed as R+) when 1→∞.In order to satisfy this condition, it is required to satisfy thefollowing conditional expression (7):t<f(s,t), all tεR+  (7)

LLR message propagation from a check node to a variable node is analyzednext. The following equation (8) is defined on condition that 0<s<∞ and0<r≦1. In this case, r has an initial value r0 of φ(s).

$\quad\begin{matrix}{{{{hi}\left( {s,r} \right)} = {\phi\left( {s + {\left( {i - 1} \right){\sum\limits_{j = 2}^{d_{r}}{\rho_{j}{\phi\left( {1 - \left( {1 - r} \right)^{j - 1}} \right)}}}}} \right)}}{{{hi}\left( {s,r} \right)} = {\sum\limits_{i = 2}^{d_{i}}{\lambda_{i}{h_{i}\left( {s,r} \right)}}}}} & (8)\end{matrix}$The equation (8) can be represented equivalently by the followingequation (9):rl=h(s,rl−1)  (9)

A condition required for deriving an SNR limit (threshold) that providesan error with a value of 0 includes rl(s)→0. In order to satisfy thiscondition, it is required to satisfy the following conditionalexpression (10):r<h(s,r), all rε(0,φ(s))  (10)

In the paper by Chung et al., optimal degrees are searched for variablenodes and check nodes using the above equation in the followingprocedure:

-   (1) On the assumption that a generator function λ(x) and a Gaussian    noise σn are given, a generator function ρ(x) is used as a variable    to search a point that maximizes the equation (1) previously    described. A constraint condition associated with this search    includes normalization to ρ(x)=1 and satisfaction of the equation    (7).-   (2) On the assumption that a generator function ρ(x) and a Gaussian    noise σn are given (as a value resulted from the step (1), for    example), a generator function λ(x) is used as a variable to search    a point that maximizes the equation (1). A constraint condition    associated with this search includes normalization to λ(x)=1 and    satisfaction of the equation (10).-   (3) In order to find the maximum “rate”, the steps (1) and (2) are    iteratively executed to search a better ensemble of the generator    function λ(x) and the generator function ρ(x) with a linear    programming.-   (4) Finally, signal power is normalized to 1 based on Gaussian noise    σn to find an SNR limit (threshold).    threshold (dB)=−10*log 10^((2*σ) ^(n) ² ⁾  (11)

A problem is found in the paper of Chung et al. because a check matrixderived from the maximum of the “rate (coding rate)” is flux. Such thecheck matrix is not suitable for practical design because the rate fixedin design as a spec varies. In addition, the Gaussian Approximationiteratively executes the derivation of the degree distributionassociated with variable nodes and the derivation of the degreedistribution associated with check nodes over certain times. Therefore,a problem arises because it takes a time to some extent for searching.

The present invention provides a method to search easily and in a shorttime a definite and characteristic-stabilized check matrix for“Irregular-LDPC Codes”. FIG. 1 is a flowchart of the method ofgenerating check matrixes for LDPC codes according to a first embodimentof the present invention.

In step S1, it is assumed that the “rate” is given. That is, a requisite“rate” is fixed because a target “rate” is often designated previouslyin practical design.

In step S2, a generator function λ(x) and a generator function ρ(x) aresimultaneously used as variables, and a linear programming is employedto search optimal generator functions λ(x) and ρ(x) that maximize theGaussian noise σn. A constraint condition associated with this searchincludes normalization to λ(1)=1, ρ(1)=1 and satisfaction of theequation (10).

Thus, the linear programming is employed once to find such generatorfunctions λ(x) and ρ(x) that satisfy the equations (9) and (10).Therefore, it is possible to search a definite andcharacteristic-stabilized check matrix for LDPC codes more easily in ashorter time than the method described in the paper that iterativelyexecutes derivation of the generator functions λ(x) and ρ(x) to deriveboth optimal values.

The method of generating check matrixes for LDPC codes according to asecond embodiment of the present invention applies Euclid geometriccodes in the first embodiment and divides arrangement of “1”s on one rowor one column to generate a check matrix for “Irregular-LDPC Codes”.

The method of generating check matrixes for “Irregular-LDPC Codes” inthe first embodiment is employed first to derive an ensemble ofgenerator functions λ(x) and ρ(x). FIG. 2 illustrates an ensemble of agenerator function λ(x) and a generator function ρ(x) with the rate=0.5.In this ensemble, σGA denotes a noise distribution value on the“threshold” derived by Gaussian Approximation; SNRnorm(GA) denotes adifference between an SNR on the “threshold” derived by GaussianApproximation and an SNR on Shannon limit; x denotes a weight; and λxand ρx weight distributions associated with variable nodes and checknodes, respectively.

It is assumed that reference Euclid geometric codes are expressed asEG(2, 25), and dl=32. A value of x in the weight distribution λx and avalue of x in the weight distribution ρx are determined as those thatcan configure 32(dl) in combination.

FIG. 3 illustrates a division table for EG(2, 25) with dl=32. As shownin FIG. 3, values of x in FIG. 2 can be combined always to have a valueof 32. For example, a shown combination of 7×4 and 2×2 indicates that acolumn with a weight of 32 can be divided into four columns with aweight of 7 and two columns with a weight of 2. Thus, when EG(2, 25)codes are used as basic codes to divide appropriately each row andcolumn with a weight of 32 as shown in FIG. 3, a check matrix for“Irregular-LDPC Codes” can be configured.

Prior to such the dividing process, the weight distributions in theensemble of generator functions λ(x) and ρ(x) shown in FIG. 2 aresubjected to adjustment in the following procedures. FIG. 4 illustratesa table for adjusting a weight distribution. Euclid geometric codesEG(2, 25) are composed of 1023 rows×1023 columns.

-   (1) The ensemble of the generator functions λ(x) and ρ(x) (see    FIG. 4) found through Gaussian Approximation is set in the table on    the second column and the third column.-   (2) The weight distributions λx and ρx (the third column) are    multiplied by the total number of “1”s, TP=32736, in the entire    matrix at EG(2, 25) to find the total weight number of weight units,    and the total weight number of weight units and a sum thereof are    set on the fourth column.-   (3) The total weight number of weight units (on the fourth column)    is divided by the corresponding weight of x to find the total column    number of weight units, which is set on the fifth column.-   (4) If the total column number of weight units contains a fraction    after the decimal point, a rounding process (such as rounding off,    rounding up, and rounding down) is performed, and the rounded result    is set on the sixth column.-   (5) The rounded total column number of weight units (on the sixth    column) is multiplied by the corresponding weight of x to find the    total column number of weight units after the rounding process,    which is set on the seventh column. It is then determined whether    each sum of the total column numbers (a total row on the seventh    column) is equal to the total number of “1”s in the matrix    (TP=32736).-   (6) If it is not equal to the total number of “1”s in the matrix,    the rounded total column number of weight units (on the seventh    column) is adjusted on an integer basis, and the adjusted result is    set on the eighth column. In this case, the sum on the eighth column    is adjusted to have a value equal to the total number of “1”s in the    matrix (TP=32736).-   (7) The adjusted total weight number of weight units (on the eighth    column) is divided by the corresponding weight of x to find the    adjusted total column number of weight units, which is set on the    ninth column. Each adjusted weight distribution (on the eleventh    column) is determined to have a value as close to the value found    through Gaussian Approximation (on the third column) as possible.

FIG. 5 illustrates an ensemble of a generator function λ(x) and agenerator function ρ(x) after the weight distribution.

A procedure of dividing one row or one column in Euclid geometric codesis explained next.

The paper of Y. Kou et al. proposes to perform the dividing based oncertain rules. FIG. 6 illustrates the dividing procedure proposed in thepaper of Kou et al. As shown in FIG. 6, a matrix is numbered with columnnumbers 1, 2, 3 . . . in sequence from the left end and row numbers 1,2, 3 . . . in sequence from the top. For example, 32 points×1 row can bedivided into 8 points×4 rows regularly in accordance with the followingequation (12):Sm(n)=Bl(m+4*n)  (12)where m=1, 2, 3, 4; n=0, 1, 2, 3, 4, 5, 6, 7; and l denotes a columnnumber in EG(2, 25). Bl(x) denotes a position of “1” on the l-th columnin EG(2, 25), and Sm(n) a position of “1” on the m-th column in thedivided matrix.

Specifically, a row number indicative of a position of “1” on a row inEG(2, 25) is represented by:

-   -   B1 (x)={1 32 114 136 149 223 260 382 402 438 467 507 574 579 588        622 634 637 638 676 717 728 790 851 861 879 947 954 971 977 979        998}        As a result, extracting a number indicative of “1” from Bl(x)        regularly, row numbers indicative of positions of “1” on the 1st        to 4th columns in the divided matrix are represented by:    -   S1 (n)={1 149 402 574 634 717 861 971}    -   S2 (n)={32 223 438 579 637 728 879 977}    -   S3 (n)={114 260 467 588 638 790 947 979}    -   S4 (n)={136 382 507 622 676 851 954 998}        Thus, 32 points×1 row can be divided into 8 points×4 rows.

On the other hand, in the dividing procedure according to the presentembodiment, Euclid geometric codes are not divided regularly asdescribed above. Rather, a number indicative of “1” is extracted fromBl(x) at random. Any extracting process may be applied so long as it canretain randomness.

Accordingly, on the m-th column in the divided matrix, an exemplaryposition of “1”, Rm(n), is represented by:

-   -   R1 (n)={1 114 574 637 851 879 977 979}    -   R2 (n)={32 136 402 467 588 728 861 971}    -   R3 (n)={149 260 382 438 579 638 717 998}    -   R4 (n)={223 507 622 634 676 790 947 954}

The dividing procedure of the present embodiment can be expressed on agraph as follows. FIG. 7 illustrates a graph of EG(2, 25) beforedivision. A line connecting both nodes is expressed as an edge. FIG. 7shows Euclid geometric codes in 1023 rows×1023 columns (with eachrow/column weight of 32) before division. FIG. 8 illustrates a graphafter the division, which selects edges from EG(2,25) at random.

Characteristics of the LDPC codes previously described are comparedbelow. FIG. 9 illustrates a relation between an Eb/No (Signal power toNoise power per information bit).to a bit error rate (hereinafter,“BER”). The number of iteration is equal to 50 times. The decodingmethod is a “Sum-Product Algorithm”.

“Simple regular extended EG(2,25) correspond to “Regular-LDPC Codes”with rate=0.5 when a regular column division in EG(2,25) proposed by Y.Kou et al. is performed. “Random regular extended EG(2,25) correspond to“Regular-LDPC Codes” with rate=0.5 when a random column division inEG(2,25) according to the present embodiment is performed. FIG. 10illustrates an ensemble of these “Regular-LDPC Codes”. “Simple irregularextended EG(2,25) correspond to

“Irregular-LDPC Codes” with rate=0.5 when a regular column division inEG(2,25) proposed by Y. Kou et al. is performed to the ensemblespecified in the method of the first embodiment. “Random irregularextended EG(2,25) correspond to “Irregular-LDPC Codes” with rate=0.5when a random column division in EG(2,25) according to the presentembodiment is performed to the ensemble specified in the method of thefirst embodiment. FIG. 11 illustrates an ensemble of these“Irregular-LDPC Codes”.

As can be seen from FIG. 9, “Irregular-LDPC Codes” have a betterperformance than that of “Regular-LDPC Codes”at the same rate. Theregular division proposed in the paper of Y. Kou et al. can not allow alarger improvement even with “Irregular-LDPC Codes”. In contrast, therandom division of the present embodiment can provide a remarkablyimproved performance when it is implemented.

An example of the random division is detailed next. A random sequence isgenerated easily and definitely for the random division. This method hasan advantage because the sending side and the receiving side cangenerate the same random sequence. This is extremely important in apractical system. There is another advantage because a conditionassociated with code characteristics can be defined correctly.

(1) Creation of basic random sequences:

An example of random sequence creation is described below using Euclidgeometric codes EG(2,24) for convenience of explanation. In Euclidgeometric codes EG(2,24), the number of “1”s present in a row is equalto 24.

When P is used for the minimum prime number that satisfies P≧2s, forexample, P=17 in the case of 24. A basic random sequence C(i) with asequence length, P−1=16, is created in accordance with the equation(13):C(1)=1C(i+1)=G0×C(i)mod P  (13)where i=1, . . . , P−1; and G0 denotes an original source of GaloisField GF(P). As a result, C(i) is represented by:

-   -   C (i)={1 3 9 10 13 5 15 11 16 14 8 7 4 12 2 6}        In the case of 24, P has a value equal to 24+1, which yields a        random sequence length of 16 without any problem. In the case of        25, however, P has a value equal to 25+1, which yields a random        sequence length above 25. In order to meet such the case,        numeric values over 25 are deleted from the random sequence.

The random sequence C(i) is then cyclically shifted to generate a Latinsquare of random sequences. FIG. 12 illustrates a Latin square of randomsequences.

(2) Using the Latin square of random sequences, from an arrangementB1(x) with a row number indicative of a position of “1” on the 1stcolumn in Euclid geometric codes EG(2,24), a number indicative of “1” isextracted at random to divide the 1st column in Euclid geometric codes.The arrangement B1(x) is represented by:

-   -   B1 (x)={1 14 16 19 45 49 55 107 115 126 127 182 210 224 231 247}

For example, if the 1st column in Euclid geometric codes is divided intofour (such that each column has a weight of 4), four random sequencesL1(n) to L4(n) are extracted from the 1st row in the Latin square ofrandom sequences.

-   -   L1 (n)={1, 3, 9, 10}    -   L2 (n)={13, 5, 15, 11}    -   L3 (n)={16, 14, 8, 7}    -   L4 (n)={4, 12, 2, 6}

Using the four random sequences L1(n) to L4(n), a number indicative of“1” is extracted from the arrangement B1(x) at random. As a result,R(L1(n)) to R(L4(n)) are given as:

-   -   R (L1 (n))={1, 16, 115, 126}    -   R (L2 (n))={210, 45, 231, 127}    -   R (L3 (n))={247, 224, 107, 55}    -   R (L4 (n))={19, 182, 14, 49}        (3) Similarly, using the Latin square of random sequences, from        an arrangement B2(x) at a row number indicative of a position of        “1” on the 2nd column in Euclid geometric codes EG(2,24), a        number indicative of “1” is extracted at random to divide the        2nd column in Euclid geometric codes. The arrangement B2(x) is        represented by:    -   B2 (x)={2 15 17 20 46 50 56 108 116 127 128 183 211 225 232 248}

For example, if the 2nd column in Euclid geometric codes is divided intofour (such that each column has a weight of 4), four random sequencesL1(n) to L4(n) are extracted from the 2nd row in the Latin square ofrandom sequences.

-   -   L5 (n)={3, 9, 10, 13}    -   L6 (n)={5, 15, 11, 16}    -   L7 (n)={14, 8, 7, 4}    -   L8 (n)={12, 2, 6, 1}

Using the four random sequences L5(n) to L8(n), a number indicative of“1” is extracted from the arrangement B2(x) at random. As a result,R(L5(n)) to R(L8(n)) are given as:

-   -   R (L5 (n))={17, 116, 127, 211}    -   R (L6 (n))={46, 232, 128, 248}    -   R (L7 (n))={225, 108, 56, 20}    -   R (L8 (n))={183, 15, 50, 2}        All other columns in Euclid geometric codes are divided        similarly in the same procedures.        (4) If the Latin square of random sequences lacks in random        sequences, a prime number larger than the original source and        less than 2s is substituted for the basic random sequence G0 in        the equation (13) to create a new basic random sequence and        divide it with the same procedure.

Another method of creating a Latin square of random sequences isexplained next using Euclid geometric codes EG(2,25) for convenience ofexplanation. In Euclid geometric codes EG(2,25), the number of “1”spresent in a row is equal to 25.

In the previous example of EG(2,24), the created Latin square of 16(rows)×16 (columns) may lack in random sequences. In the present exampleof EG(2,25), it is extended to 32 (rows)×960 (columns). This matrix hasa size determined by 30 sets of Latin squares of 32 (rows)×32 (columns)arranged in the column direction.

In the previous example, P is used for the minimum prime number thatsatisfies P≧2s. In the present example, P is used for the maximum primenumber that satisfies P≧2s. For example, P=31 in the case of 25.

A basic random sequence C(i) with a sequence length, P=31, is created inaccordance with the equation (14):C(1)=0C(i+1)=G0×C(i)mod P  (14)where i=1, . . . , P−1; and G0 denotes an original source of GaloisField GF(P). As a result, C(i) is represented by:

-   -   C (i)={0, 1, 3, 9, 27, 19, 26, 17, 20, 29, 25, 13, 8, 24, 10,        30, 28, 22, 4, 12, 5, 15, 14, 11, 2, 6, 18, 23, 7, 21}

The following operation is given next.C(i)=C(i)+1,C(32)=32

As a result, C(i) is represented by:

-   -   C (i)={1, 2, 4, 10, 28, 20, 27, 17, 18, 21, 30, 26, 14, 9, 25,        11, 31, 29, 23, 5, 13, 6, 16, 15, 12, 3, 7, 19, 24, 8, 22, 32}        This result is shown as a basic random sequence within a        thick-lined frame at the left side in FIG. 17.

The following explanation is given to a method of reading the randomsequence of C(i) at a certain interval, S(j), where j=1, 2, . . . , P−1,with possible P−1 variations. In this case, P−1=30.

-   -   S (j)={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,        17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30}

If a sequence LB_(j)(i) is given for reading the random sequence at acertain interval, then

-   -   LB_(j)(i)=((S(j)*i)mod P)+1        where j=1, 2, . . . , P−1; and i=1, 2, . . . , P−1.        For example, if j=1, then    -   LB1 (i)={2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,        18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}

This example lacks integers of 1 and P through 2s for the sequencenumber of random sequences, 32. In this case, integers of 1 and 32 arelacked. Then,

-   -   LBj(j)=32, LBj(32-j)=1        can be inserted to yield:    -   LB1 (i)={32, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,        17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 1, 31}        Similarly, if j=2,    -   LB2 (i)={3, 32, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29,        31, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 1, 28, 30}

Now, creation of a Latin square is started. Ljq(i) denotes a sequence onthe q-th column in the j-th Latin square. If Ljq(i)=LBj(i), then

-   -   L11 (i)=C (LB1 (i) )=    -    {32, 2, 4, 10, 28, 20, 27, 17, 18, 21, 30, 26, 14, 9, 25, 11,        31, 29, 23, 5, 13, 6, 16,15, 12, 3, 7, 19, 24, 8, 1, 22}        This corresponds to L11(i) on the 1st column in FIG. 18.

This random sequence L11 (i) is cyclically shifted to create a Latinsquare L1q(i) of 32 (rows)×32 (columns). In the similar procedure, Latinsquares L2q(i), L3q(i), . . . , L30q(i) are created to produce acombination of Latin squares, 32 (rows)×(32×30) (columns).

A specific example is explained below. From an arrangement B1(x) with arow number indicative of a position of “1” on the 1st column in Euclidgeometric codes EG(2, 25), a number indicative of “1” is extracted atrandom to decompose the 1st column in Euclid geometric codes. Thearrangement B1(x) is represented by:

-   -   B1 (x)={1 32 114 136 149 223 260 382 402 438 467 507 574 579 588        622 634 637 638 676 717 728 790 851 861 879 947 954 971 977 979        998}

For example, if the 1st column in Euclid geometric codes is divided intofour (such that each column has a weight of 8), four random sequencesL1(n) to L4(n) are extracted from the 1st column in the 1st Latin squarein the combination of Latin squares of random sequences, Ljq(i).

-   -   L1 (n)={32, 2, 4, 10, 28, 20, 27, 17}    -   L2 (n)={18, 21, 30, 26, 14, 9, 25, 11}    -   L3 (n)={31, 29, 23, 5, 13, 6, 16, 15,}    -   L4 (n)={12, 3, 7, 19, 24, 8, 1, 22}

Using the four random sequences L1(n) to L4(n), a number indicative of“1” is extracted from the arrangement B1(x) at random. As a result,R(L1(n)) to R(L4(n)) are given as:

-   -   R(L1 (n))={998, 32, 136, 438, 954, 676, 947, 634}    -   R(L2 (n))={637, 717, 977, 879, 579, 402, 861, 467}    -   R(L3 (n))={979, 971, 790, 149, 574, 223, 622, 588}    -   R(L4 (n))={507, 114, 260, 638, 851, 382, 1, 728}        All other columns in Euclid geometric codes are divided        similarly in the same procedures.

As explained above, according to one aspect of the present invention,the generator function λ(x) and the generator function ρ(x) arecalculated in one linear programming. Therefore, it is possible tosearch definite and characteristic-stabilized check matrix for LDPCcodes more easily and speedily than the method described in the paperthat iteratively executes derivation of the generator functions λ(x) andρ(x) to derive both optimal values.

Moreover, the better characteristics are obtained than “Regular-LDPCCodes” at the same rate. The regular division can not allow a largerimprovement even with “Irregular-LDPC Codes”. In contrast, the randomdivision can remarkably improve performance.

Furthermore, a weight distribution is adjusted such that the totalweight number of weight units is equal to an integer, and a sum of thetotal weight numbers of weight units is equal to the total number of“1”s in Euclid geometric codes. This realizes more accurate dividingprocess.

Moreover, the sending side and the receiving side can generate the samerandom sequence. Also, a condition associated with code characteristicscan be defined correctly through creation of a Latin square of randomsequences.

Moreover, the sending side and the receiving side can generate the samerandom sequence. Also, a condition associated with code characteristicscan be defined correctly through creation of a plurality of Latinsquares of random sequences.

INDUSTRIAL APPLICABILITY

As obvious from the forgoing, the method of generating check matrixesfor LDPC codes according to the present invention is effective as anerror control technology for a LDPC encoding/decoding system thatemploys LDPC codes. In particular, it is suitable for an encoder forgenerating definite and characteristic-stabilized “Irregular-LDPC codes”and a communication device equipped with the encoder.

1. A method of generating check matrixes for Low-Density Parity-Checkcodes to derive a threshold of Signal to Noise Ratio that provides anerror with a value of 0 by analyzing a Sum Product Algorithm for theLow-Density Parity-Check codes, on an assumption that a Log LikelihoodRatio between input/output data at a decoder is approximated in aGaussian distribution, comprising: utilizing an encoder for fixing acoding rate; utilizing the encoder for obtaining an optimal ensemble,which is an ensemble that minimizes the threshold of Signal to NoiseRatio, of a row and a column weights in a linear programming, whereinthe linear programming is employed to search optimal generator functionsto maximize a Gaussian noise; and utilizing the encoder for generating acheck matrix for the Low-Density Parity-Check codes in accordance withthe ensemble obtained.
 2. The method according to claim 1, furthercomprising extracting “1” at random from each row or each column inEuclid geometric codes based on the ensemble obtained, and thegenerating includes dividing each row or each column to generate a checkmatrix for Irregular Low-Density Parity-Check codes.
 3. The methodaccording to claim 2, further comprising: adjusting a weightdistribution in the ensemble obtained such that the total weight numberof weight units is equal to an integer, and a sum of the total weightnumbers of weight units is equal to the total number of “1”s in Euclidgeometric codes, wherein the dividing is performed based on the adjustedensemble.
 4. The method according to claim 3, further comprising:creating a Latin square of basic random sequences; dividing a randomsequence on m-th row in the Latin square into code-word length n whenm-th column in the Euclid geometric codes is divided into code-wordlength n; and extracting “1” from the m-th column in the Euclidgeometric codes using each random sequence after divided into code-wordlength n.
 5. The method according to claim 3, further comprising:creating a Latin square of basic random sequences; dividing a randomsequence on m-th row in the Latin square into code-word length n whenm-th row in the Euclid geometric codes is divided into code-word lengthn; and extracting “1” from the m-th row in the Euclid geometric codesusing each random sequence after divided into code-word length n.
 6. Themethod according to claim 3, further comprising: creating a plurality ofLatin squares of basic random sequences; using a Latin square groupmatrix linked in the column direction; dividing a random sequence onm-th column in the Latin square group matrix into code-word length nwhen m-th column in the Euclid geometric codes is divided into code-wordlength n; and extracting “1” from the m-th column in the Euclidgeometric codes using each random sequence after divided into code-wordlength n.
 7. The method according to claim 3, further comprising:creating a plurality of Latin squares of basic random sequences; using aLatin square group matrix linked in the column direction; dividing arandom sequence on m-th column in the Latin square group matrix intocode-word length n when m-th row in the Euclid geometric codes isdivided into code-word length n; and extracting “1” from the m-th row inthe Euclid geometric codes using each random sequence after divided intocode-word length n.
 8. An apparatus for generating check matrixes forLow-Density Parity-Check codes to derive a threshold of Signal to NoiseRatio that provides an error with a value of 0 by analyzing a SumProduct Algorithm for the Low-Density Parity-Check codes, on anassumption that a Log Likelihood Ratio between input/output data at adecoder is approximated in a Gaussian distribution, comprising: anencoder to fix a coding rate; obtain an optimal ensemble, which is anensemble that minimizes the threshold of Signal to Noise Ratio, of a rowand a column weights in a linear programming, wherein the linearprogramming is employed to search optimal generator functions tomaximize a Gaussian noise; and generate a check matrix for theLow-Density Parity-Check codes in accordance with the ensemble obtained.9. The apparatus according to claim 8, wherein the encoder furtherextracts “b 1” at random from each row or each column in Euclidgeometric codes based on the ensemble obtained, and divides each row oreach column to generate a check matrix for Irregular Low-DensityParity-Check codes.
 10. The apparatus according to claim 9, wherein theencoder further adjusts a weight distribution in the ensemble obtainedsuch that the total weight number of weight units is equal to aninteger, and a sum of the total weight numbers of weight units is equalto the total number of “1”s in Euclid geometric codes, and divides eachrow or each column to generate a check matrix for Irregular Low-DensityParity-Check codes based on the adjusted ensemble.
 11. The apparatusaccording to claim 10, wherein the encoder further creates a Latinsquare of basic random sequences; divides a random sequence on m-th rowin the Latin square into code-word length n when m-th column in theEuclid geometric codes is divided into code-word length n; and extracts“1” from the m-th column in the Euclid geometric codes using each randomsequence after divided into code-word length n.
 12. The apparatusaccording to claim 10, wherein the encoder further creates a Latinsquare of basic random sequences; divides a random sequence on m-th rowin the Latin square into code-word length n when m-th row in the Euclidgeometric codes is divided into code-word length n; and extracts “1”from the m-th row in the Euclid geometric codes using each randomsequence after divided into code-word length n.
 13. The apparatusaccording to claim 10, wherein the encoder further creates a pluralityof Latin squares of basic random sequences; uses a Latin square groupmatrix linked in the column direction; divides a random sequence on m-thcolumn in the Latin square group matrix into code-word length n whenm-th column in the Euclid geometric codes is divided into code-wordlength n; and extracts “1” from the m-th column in the Euclid geometriccodes using each random sequence after divided into code-word length n.14. The apparatus according to claim 10, wherein the encoder furthercreates a plurality of Latin squares of basic random sequences; uses aLatin square group matrix linked in the column direction; divides arandom sequence on m-th column in the Latin square group matrix intocode-word length n when m-th row in the Euclid geometric codes isdivided into code-word length n; and extracts “1” from the m-th row inthe Euclid geometric codes using each random sequence after divided intocode-word length n.